A conventional computer graphics system can display graphical images of objects on a display. The display includes a plurality of display elements, known as pixels, typically arranged in a grid. In order to display objects, the conventional computer graphics system typically breaks each object into a plurality of polygons, termed primitives. A conventional system then renders the primitives in a particular order.
Some computer graphics systems are capable of rendering the primitives in raster order. Such as system is described in U.S. Pat. No. 5,963,210, entitled “GRAPHICS PROCESSOR, SYSTEM AND METHOD FOR GENERATING SCREEN PIXELS IN RASTER ORDER UTILZING A SINGLE INTERPRETER” and assigned to the assignee of the present application. In such a system, all of the primitives intersecting a particular pixel are rendered for that pixel. The primitives intersecting a next pixel in the line are then rendered. Typically, this process proceeds from left to right in the line until the line has been rendered, then recommences on the next line. The frame is rendered line by line, until the frame has been completed.
In order to render the frame, the primitives are loaded into processors. Typically, all of the primitives starting at a particular line are loaded into the processors at the start of the line. After the line has completed processing, primitives which have expired are ejected. An expired primitive is one which can not be present on the next line. In other words, an expired primitive has a bottom that is no lower than the line that was just processed. Any new primitives for the next line are loaded at the start of the next line. The line is then processed as described above. This procedure continues until the frame is rendered.
Although the system is capable of rendering primitives in raster order, one of ordinary skill in the art will readily recognize that the processes of loading primitives and ejecting expired primitives each consume time and resources. In addition, in a complex scene, many primitives might expire at the end of a particular line and a large number of primitives might start at the next line. Ejecting the expired primitives and loading the new primitives might cause a significant delay in the pipeline. Furthermore, the primitives are all loaded into and processed by the processors. Thus, the number of primitives capable of being processed at a particular pixel is limited by the number of processors in the system. Typically, the number of processors is on the order of sixteen or thirty two. As a result, the number of primitives that overlap at a particular pixel and that can be processed is limited to sixteen or thirty two. The complexity of the frame is thereby limited. This limitation can be improved by increasing the number of processors. However, increasing the number of processors increases the space consumed by the graphics system, which is undesirable.
Accordingly, what is needed is a system and method for more efficiently loading primitives into the processors. The present invention addresses such a need.